package cn.powerone.scm.domain;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import cn.powerone.common.annotation.Excel;
import cn.powerone.common.core.domain.BaseEntity;

/**
 * 产品与库位对应关系对象 scm_inventory_product_location
 *
 * @author PowerOne
 * @date 2025-08-30
 */
public class ScmInventoryProductLocation extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long id;

    /** 产品ID，关联scm_products(id) */
    @Excel(name = "产品ID，关联scm_products(id)")
    private Long productId;

    /** 库位ID，关联scm_inventory_location(id) */
    @Excel(name = "库位ID，关联scm_inventory_location(id)")
    private Long locationId;

    /** 客户ID，关联客户表 */
    @Excel(name = "客户ID，关联客户表")
    private Long customerId;

    /** 状态（0正常 1停用等） */
    @Excel(name = "状态", readConverterExp = "0=正常,1=停用等")
    private Long status;

    /** 优先级 */
    @Excel(name = "优先级")
    private Long priority;

    /** 当前库位产品数量 */
    @Excel(name = "当前库位产品数量")
    private Long quantity;

    /** 库位数量 */
    @Excel(name = "库位数量")
    private Long locationAmount;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setProductId(Long productId)
    {
        this.productId = productId;
    }

    public Long getProductId()
    {
        return productId;
    }
    public void setLocationId(Long locationId)
    {
        this.locationId = locationId;
    }

    public Long getLocationId()
    {
        return locationId;
    }
    public void setCustomerId(Long customerId)
    {
        this.customerId = customerId;
    }

    public Long getCustomerId()
    {
        return customerId;
    }
    public void setStatus(Long status)
    {
        this.status = status;
    }

    public Long getStatus()
    {
        return status;
    }
    public void setPriority(Long priority)
    {
        this.priority = priority;
    }

    public Long getPriority()
    {
        return priority;
    }
    public void setQuantity(Long quantity)
    {
        this.quantity = quantity;
    }

    public Long getQuantity()
    {
        return quantity;
    }
    public void setLocationAmount(Long locationAmount)
    {
        this.locationAmount = locationAmount;
    }

    public Long getLocationAmount()
    {
        return locationAmount;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("productId", getProductId())
                .append("locationId", getLocationId())
                .append("customerId", getCustomerId())
                .append("status", getStatus())
                .append("priority", getPriority())
                .append("quantity", getQuantity())
                .append("locationAmount", getLocationAmount())
                .append("remark", getRemark())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .toString();
    }
}
